#include "OpenGLDriverLinux.h"
#include <GL/gl.h>
#include <GL/glx.h>

COpenGLDriverLinux::COpenGLDriverLinux(StartDriverParams *DrvParams):COpenGLDriver(DrvParams)
{
}

COpenGLDriverLinux::~COpenGLDriverLinux()
{
}

void COpenGLDriverLinux::BeginRender()
{
	COpenGLDriver::BeginRender();
}

void COpenGLDriverLinux::EndRender()
{
	COpenGLDriver::EndRender();
    glXSwapBuffers(disp, *wnd);
}

void COpenGLDriverLinux::EnableOpenGL(Display *dsp,Window *win,StartDriverParams *DrvParams)
{
    disp = dsp;
    wnd = win;

	// set vsync
#ifdef GLX_SGI_swap_control
	PFNGLXSWAPINTERVALSGIPROC glxSwapIntervalSGI;
	// get vsync extension
	glxSwapIntervalSGI = (PFNGLXSWAPINTERVALSGIPROC)glXGetProcAddress(reinterpret_cast<const GLubyte*>("glXSwapIntervalSGI"));

	if (DrvParams->VSync)
		glxSwapIntervalSGI(1);
#endif

    InitDriver();
}
